Micron Document
____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|


The NomadNet German Wikipedia | Archives | Info
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b

πŸ” Search

Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―

Can4linux
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
can4linux ist ein Open-Source-CAN-GerΓ€tetreiber fΓΌr den Linux-Kernel. Die Entwicklung begann Mitte der 1990er Jahre fΓΌr den CAN-Controller-Baustein Philips 82C200 auf einem ISA Board AT-CAN-MINI. Die erste Version entstand um 1995 im Rahmen des Linux Lab project an der FU Berlin, um unter Linux den CAN-Bus in der Laborautomatisierung zu nutzen.

Durch die zunehmende Verbreitung von CAN in der Automatisierungstechnik insbesondere auch im embedded Bereich, in dem seit der Jahrtausendwende auch verstΓ€rkt Linux eingesetzt wird, kommt GerΓ€tetreibern als Basis fΓΌr hΓΆhere CAN basierende Protokolle wie CANopen, J1939 und DeviceNet. eine gestiegene Bedeutung zu.

Neben dem NXP SJA1000 als Nachfolger des CAN Controllers Philips 82C200 und dem Intel 82527 wurden ab 2005 verstΓ€rkt Anpassungen fΓΌr sogenannte integrierte CAN Controller in leistungsstarken Mikrocontrollern, fΓΌr die Linux-Portierungen existieren, erstellt. Als Beispiele sollen hier die Freescale-ColdFire-Prozessoren oder ARM-Derivate von ATMELcite-ref-1[1] und Freescalecite-ref-2[2] aber auch der Stand-Alone CAN Controller MCP2515,cite-ref-3[3] angeschlossen ΓΌber den SPI Bus, dienen.

Eine Liste befindet sich auf der can4linux Projektseite.cite-ref-4[4]

Die neueste Version unterstΓΌtzt eine virtuelle CAN Betriebsart, in welcher sich Anwendungen ohne spezielle CAN Hardware nur ΓΌber den Treiber CAN Nachrichten austauschen kΓΆnnen. In dieser Betriebsart ist auch schon das Frame-Format fΓΌr CAN FDcite-ref-5[5] implementiert, welches DatenlΓ€ngen bis zu 64 Byte erlaubt.

Contents

β€’ Benutzung
β€’ Siehe auch
β€’ Weblinks

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Benutzung

Die Anwendungssoftware âffnet einen CAN Device Descriptor und erhÀlt einen File Descriptor. Über diesen werden die CAN Frames über die Standard Betriebssystem Funktionen read() und write() mit anderen Teilnehmern am CAN-Bus ausgetauscht.

Der folgende Code ist ein Beispiel, welches einen Frame sendet und anschließend auf einen Frame von einem anderen Bus-Teilnehmer wartet. Weitere Beispiele befinden sich auf der Projektseite.cite-ref-6[6]

/* simple CAN application example
*
* used for the Wikipedia article on can4linux
*/
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <can4linux.h>
int main(int argc,char **argv)
{
int fd;
canmsg_t frame;
fd = open("/dev/can0", O_RDWR);
frame.id = 100;
frame.length = 2;
frame.data[0] = 5;
frame.data[1] = 0;
write(fd, &frame, 1); /*Β ! count enthΓ€lt Anzahl Frames, nicht Byte */
read(fd, &frame, 1); /*Β ! count enthΓ€lt Anzahl Frames, nicht Byte */
printf("received CAN Frame Id %ld, DLC=%d\n", frame.id, frame.length);
return 0;
}

can4linux kann so ΓΌbersetzt werden, dass verschiedene Prozesse auf den gleichen CAN Controller lesend und schreibend zugreifen kΓΆnnen. Auf diese Weise kann z. B. neben der eigentlichen Anwendung ein unabhΓ€ngiger Diagnoseprozess den Bus beobachten.

Siehe auch

β€’ SocketCAN

Weblinks

β€’ can4linux Projektseite

Einzelnachweise

cite-note-11. ↑ ATMEL SAM9263
cite-note-22. ↑ Freescale i.MX35 Familie
cite-note-33. ↑ Stand Alone CAN MCP2515
cite-note-44. ↑ can4linux Projektseite
cite-note-55. ↑ CAN FD Spezifikation (PDF; 624 kB)
cite-note-66. ↑ Online can4linux-examples